Objectif : Mettre en oeuvre GNS3
GNS3 (Graphical Network Simulator) est un logiciel libre permettant l’émulation ou la simulation de réseaux informatiques.
-
Site officiel : https://www.gns3.com/
-
Documentations : https://docs.gns3.com/docs/
1. Installation
Suivre la procédure donnée dans ce document : installation-gns3.pdf
2. GNS3 GUI
2.1. Les noeuds
2.1.1. VPCS
VPCS (Virtual PC Simulator) est le simulateur fourni par défaut pour les noeuds. Ce programme, écrit par Paul Meng, permet de simuler un PC léger prenant en charge DHCP et ping. Il ne consomme que 2 Mo de RAM par instance et ne nécessite pas d’image supplémentaire.
Documentation : https://docs.gns3.com/docs/emulators/vpcs/
2.1.2. Conteneurs Docker
Il est possible d’utiliser des conteneurs Docker pour les noeuds dans GNS3 (https://docs.gns3.com/docs/emulators/docker-support-in-gns3).
|
Des conteneurs Docker pour GNS3 sont disponibles ici : |
Dans les maquettes des TPS, on utilisera :
-
pour les machines hôtes, on utilisera
tvaira/ubuntu-2004-gns3:latest -
pour les machines clientes GUI, on utilisera
tvaira/clients-debian-gns3:latest -
pour les machines serveurs, on utilisera
tvaira/server-ubuntu2004-gns3:latest -
pour les routeurs, on utilisera
kathara/quagga:latest
|
L’image $ wget https://www.realvnc.com/download/file/viewer.files/VNC-Viewer-6.21.1109-Linux-x64.deb $ sudo dpkg -i VNC-Viewer-6.21.1109-Linux-x64.deb |
Pour ajouter une nouveau conteneur Docker, aller dans Edit → Preferences → Docker containers et cliquer sur New :
Puis :
Choisir entre une image existante :
ou nouvelle image (https://hub.docker.com/) :
Terminer en donnant un nom :
2.1.3. Machines virtuelles
Il est possible d’utiliser des VM de VirtualBox ou VMWare.
Pour ajouter une VM de VirtualBox, aller dans Edit → Preferences → VirtualBox VMs et cliquer sur New :
Choisir une VM dans la liste :
Terminer en cliquant sur Finish :
2.1.4. Appareils (appliance)
Les appliances sont disponibles au téléchargement sur le marketplace de GNS3 : https://gns3.com/marketplace/appliances/
|
Certains appareils nécessitent $ wget https://www.realvnc.com/download/file/viewer.files/VNC-Viewer-6.21.1109-Linux-x64.deb $ sudo dpkg -i VNC-Viewer-6.21.1109-Linux-x64.deb |
webterm
webterm est une boîte à outils réseau basée sur Debian. Il contient le navigateur web Firefox plus les utilitaires suivants : net-tools, iproute2, ping, traceroute, curl, host, iperf3, mtr, socat, ssh, tcpdump, …
Télécharger l'appliance sur le marketplace de GNS3 : https://gns3.com/marketplace/featured/webterm
|
L’image |
Open vSwitch
Open vSwitch est un commutateur virtuel multicouche.
Documentation : http://openvswitch.org/support/
Télécharger l'appliance sur le marketplace de GNS3 : https://gns3.com/marketplace/appliances/open-vswitch
Open vSwitch supportant le protocole OpenFlow, il est possible d’ajouter une administration à distance des commutateurs via un contrôleur Faucet.
|
OpenFlow est un protocole réseau standard qui permet de réaliser une architecture Software-defined networking (SDN). Ce protocole est constitué d’instructions qui permet de programmer le plan de contrôle d’un équipement réseau. |
Les contrôleurs comme Faucet utilisent OpenFlow pour contrôler la façon dont Open vSwitch (et d’autres commutateurs) traitent les trames et les paquets dans le réseau.
On ajoute un conteneur Docker avec l’image faucet/faucet:latest :
Puis on ajoute la commande à exécuter au démarrage :
Routeur Open source
pfSense est un projet de routeur open source basé sur FreeBSD (une version de linux) prenant en charge le routage, le DHCP et le NAT. De plus, il possède un firewall.
Liens :
Télécharger l'appliance : https://gns3.com/marketplace/featured/pfsense
Puis l’installer dans GNS3 :
2.2. Configuration d’un noeud
2.2.1. Réseau
Il est habituel d’éditer la configuration réseau d’un noeud :
Puis par exemple pour l’interface eth0 :
|
Le mot clé |
2.2.2. Conteneur Docker
Pour les conteneurs Docker, on configure généralement :
-
la commande à exécuter au démarrage (start command), par exemple :
sh -c "/bin/bash -i"ou tout simplement/bin/bash" -
le nombre d’interface réseau (adapters), 1 par défaut
-
le type de console (
telnet,vncouhttp) -
les variables d’environnement, par exemple :
PROMPT_COMMAND=history -a(pour conserver l’historique des commandes saisies)
Dans l’onglet Advanced :
-
ajouter des noms d’hôte dans le fichier
/etc/hosts -
ajouter des répertoires persistants au conteneur Docker, par exemple :
2.2.3. Type de console
On utilise habituellement une console de type telnet pour opérer avec un noeud. Si le noeud fournit une GUI, il faudra utiliser vncviewer pour s’y connecter à partir d’une console :
$ wget https://www.realvnc.com/download/file/viewer.files/VNC-Viewer-6.21.1109-Linux-x64.deb $ sudo dpkg -i VNC-Viewer-6.21.1109-Linux-x64.deb
Certains conteneurs utilise http :
2.3. Topologie d’une maquette
Créer un nouveau projet ou télécharger et importer dans GNS3 une maquette fournie pour un TP :
Exemple de maquette basique :
Il faut démarrer les machines de la maquette (toutes avec la flèche verte de la barre d’outils ou individuellement avec le menu contextuel clic droit d’une machine):
L’ensemble des noeuds :
2.4. Capture de trames
Il est possible de démarrer une (ou plusieurs) capture Wireshark sur un lien de la maquette :
ou :
Puis :
2.5. Divers
Au démarrage d’une machine, il est possible que les liens symboliques (déterminant les noms par défaut de certaines commandes par exemple) soient manquants. Une méthode simple pour corriger les alternatives cassées est d’utiliser :
# yes '0' | update-alternatives --force --all
3. Web-Ui
L’accès à GNS3 peut aussi se faire par une interface Web : http://<adresse-ip>/
|
Utiliser l’adresse IP de l’interface réseau avec un Accès par pont. |
Créer et ouvrir un projet pour accéder à l’interface de GNS3
Exemple de topologie réseau :
Dans l’interface Web-Ui, ouvrir un projet :
Puis ajouter des noeuds :
Et des liens :
Pour obtenir le réseau suivant par exemple :
Sélectionner un noeud et faire un clic droit :
-
Start: démarrer le noeud puis, -
Web console in new tab: ouvrir une console dans un onglet
-
Pour les images Docker :
Dans l’interface Web-Ui, aller dans Préférences :
Sélectionner Docker :
Puis ajouter un nouveau template :
Paramètrer le nouveau conteneur :
Finaliser en cliquant sur Add template.
4. Liste des TPs
Les TPs sont disponibles depuis Github Classroom :
Site : tvaira.free.fr